/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/idenger">idenger</a> All rights reserved.
 */
package com.idenger.modules.edu.entity.project;

import java.text.StringCharacterIterator;
import java.util.*;

import com.idenger.common.persistence.DataEntity;
import com.idenger.modules.edu.entity.course.EduCourse;
import com.idenger.modules.edu.entity.teacher.EduTeacherInfo;
import com.idenger.modules.edu.entity.user.EduUser;

import org.hibernate.validator.constraints.Length;

import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 项目Entity
 * @author chenlin
 * @version 2017-12-04
 */
public class EduProject extends DataEntity<EduProject> {
	
	private static final long serialVersionUID = 1L;
	private String name;		// 项目名字
	private String iconImage;		// 项目封面
	private String projectIntroduce;		// 项目介绍
	private String projectType;		// 项目类型
	private String projectPrice;		// 项目价格
	private String preferentialPrice;		// 优惠价
	private String startPeriod;		// 学时
	private String score;		// 学分
	private Date studyBeginTime;		// 学习时间
	private Date studyEndTime;		// 学习时间
	private String open;		// 是否公开
	private String openWechat;		// 微信端展示
	private String boutiqueCourse;		// 精品项目
	private String status;		// 状态  1已发布  0未发布
	private String sumScore;		// 总分值
	private String videoScore;		// 视频占值百分比
	private String haveNeedApplicationTable;		// 是否需要报名表
	private String haveNeedInvoice;		// 是否需要发票
	private String wechatHot;		// 微信热门
	private String practiceScore;		// 练习分值百分比
	private String type;		// 0单个是课程  1是项目即是多个课程
	private String freedomBuy; //是否可以自购购买 1可以 1不可以
	
	private String endStatus;
	
	private Date enrollDate;
	
//	private String endStatus;
	
	
	private EduTeacherInfo eduTeacherInfo;

	
	private List<EduCourse> eduCourseList;

	private List<EduProjectCourse> eduProjectCourseList;//课程列表
	
	private EduUser eduUser;
	

	public List<EduProjectCourse> getEduProjectCourseList() {
		return eduProjectCourseList;
	}
	

	public void setEduProjectCourseList(List<EduProjectCourse> eduProjectCourseList) {
		this.eduProjectCourseList = eduProjectCourseList;
	}

	public List<EduCourse> getEduCourseList() {
		return eduCourseList;
	}

	public void setEduCourseList(List<EduCourse> eduCourseList) {
		this.eduCourseList = eduCourseList;
	}

	public String getFreedomBuy() {
		return freedomBuy;
	}

	public void setFreedomBuy(String freedomBuy) {
		this.freedomBuy = freedomBuy;
	}

	public EduProject() {
		super();
	}

	public EduProject(String id){
		super(id);
	}

	@Length(min=0, max=64, message="项目名字长度必须介于 0 和 64 之间")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=0, max=512, message="项目封面长度必须介于 0 和 512 之间")
	public String getIconImage() {
		return iconImage;
	}

	public void setIconImage(String iconImage) {
		this.iconImage = iconImage;
	}
	
	public String getProjectIntroduce() {
		return projectIntroduce;
	}

	public void setProjectIntroduce(String projectIntroduce) {
		this.projectIntroduce = projectIntroduce;
	}
	
	@Length(min=0, max=64, message="项目类型长度必须介于 0 和 64 之间")
	public String getProjectType() {
		return projectType;
	}

	public void setProjectType(String projectType) {
		this.projectType = projectType;
	}
	
	@Length(min=0, max=10, message="项目价格长度必须介于 0 和 10 之间")
	public String getProjectPrice() {
		return projectPrice;
	}

	public void setProjectPrice(String projectPrice) {
		this.projectPrice = projectPrice;
	}
	
	@Length(min=0, max=10, message="优惠价长度必须介于 0 和 10 之间")
	public String getPreferentialPrice() {
		return preferentialPrice;
	}

	public void setPreferentialPrice(String preferentialPrice) {
		this.preferentialPrice = preferentialPrice;
	}
	
	@Length(min=0, max=64, message="学时长度必须介于 0 和 64 之间")
	public String getStartPeriod() {
		return startPeriod;
	}

	public void setStartPeriod(String startPeriod) {
		this.startPeriod = startPeriod;
	}
	
	@Length(min=0, max=64, message="学分长度必须介于 0 和 64 之间")
	public String getScore() {
		return score;
	}

	public void setScore(String score) {
		this.score = score;
	}
	
	

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getStudyBeginTime() {
		return studyBeginTime;
	}

	public void setStudyBeginTime(Date studyBeginTime) {
		this.studyBeginTime = studyBeginTime;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getStudyEndTime() {
		return studyEndTime;
	}

	public void setStudyEndTime(Date studyEndTime) {
		this.studyEndTime = studyEndTime;
	}
	@Length(min=0, max=10, message="是否公开长度必须介于 0 和 10 之间")
	public String getOpen() {
		return open;
	}

	public void setOpen(String open) {
		this.open = open;
	}
	
	@Length(min=0, max=10, message="微信端展示长度必须介于 0 和 10 之间")
	public String getOpenWechat() {
		return openWechat;
	}

	public void setOpenWechat(String openWechat) {
		this.openWechat = openWechat;
	}
	
	@Length(min=0, max=10, message="精品项目长度必须介于 0 和 10 之间")
	public String getBoutiqueCourse() {
		return boutiqueCourse;
	}

	public void setBoutiqueCourse(String boutiqueCourse) {
		this.boutiqueCourse = boutiqueCourse;
	}
	
	@Length(min=0, max=10, message="状态长度必须介于 0 和 10 之间")
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	@Length(min=0, max=10, message="总分值长度必须介于 0 和 10 之间")
	public String getSumScore() {
		return sumScore;
	}

	public void setSumScore(String sumScore) {
		this.sumScore = sumScore;
	}
	
	@Length(min=0, max=10, message="视频占值百分比长度必须介于 0 和 10 之间")
	public String getVideoScore() {
		return videoScore;
	}

	public void setVideoScore(String videoScore) {
		this.videoScore = videoScore;
	}
	
	@Length(min=0, max=10, message="是否需要报名表长度必须介于 0 和 10 之间")
	public String getHaveNeedApplicationTable() {
		return haveNeedApplicationTable;
	}

	public void setHaveNeedApplicationTable(String haveNeedApplicationTable) {
		this.haveNeedApplicationTable = haveNeedApplicationTable;
	}
	
	@Length(min=0, max=10, message="是否需要发票长度必须介于 0 和 10 之间")
	public String getHaveNeedInvoice() {
		return haveNeedInvoice;
	}

	public void setHaveNeedInvoice(String havaNeedInvoice) {
		this.haveNeedInvoice = havaNeedInvoice;
	}
	
	@Length(min=0, max=10, message="微信热门长度必须介于 0 和 10 之间")
	public String getWechatHot() {
		return wechatHot;
	}

	public void setWechatHot(String wechatHot) {
		this.wechatHot = wechatHot;
	}
	
	@Length(min=0, max=10, message="练习分值百分比长度必须介于 0 和 10 之间")
	public String getPracticeScore() {
		return practiceScore;
	}

	public void setPracticeScore(String practiceScore) {
		this.practiceScore = practiceScore;
	}
	
	@Length(min=0, max=10, message="0单个是课程  1是项目即是多个课程长度必须介于 0 和 10 之间")
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	
	public EduTeacherInfo getEduTeacherInfo() {
		return eduTeacherInfo;
	}

	public void setEduTeacherInfo(EduTeacherInfo eduTeacherInfo) {
		this.eduTeacherInfo = eduTeacherInfo;
	}
	
	
	
	private String userId;


	public String getUserId() {
		return userId;
	}


	public void setUserId(String userId) {
		this.userId = userId;
	}


	public EduUser getEduUser() {
		return eduUser;
	}


	public void setEduUser(EduUser eduUser) {
		this.eduUser = eduUser;
	}


	public Date getEnrollDate() {
		return enrollDate;
	}


	public void setEnrollDate(Date enrollDate) {
		this.enrollDate = enrollDate;
	}


	public String getEndStatus() {
		return endStatus;
	}


	public void setEndStatus(String endStatus) {
		this.endStatus = endStatus;
	}
	
	
	
	
}